package com.ocom.human.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.ocom.common.dto.AddDeptDto;
import com.ocom.common.dto.Department;
import com.ocom.common.dto.ModifyDeptDto;
import com.ocom.common.entity.human.EntityDeptInfo;

import java.util.List;

public interface DeptInfoService extends IService<EntityDeptInfo> {


    public List<EntityDeptInfo> GetDeptInfo(Long companyId, Long deptID,String deptName );


    /**
     * 校验新增部门名称是否唯一
     *
     * @param addDeptDto 部门信息
     * @return 结果
     */
    public String AddDeptNameUnique(Long comId,String deptName,Long parentDeptId);


    /**
     * 校验修改部门名称是否唯一
     *
     * @param modifyDeptDto 部门信息
     * @return 结果
     */
    public String UpdateDeptNameUnique(ModifyDeptDto modifyDeptDto,Long comId);

    /**
     * 根据部门ID查询信息
     *
     * @param deptId 部门ID
     * @return 部门信息
     */
    public EntityDeptInfo selectDeptById (Long deptId);
    /**
     * 新增保存部门信息
     *
     * @param dept 部门信息
     * @return 结果
     */
    public Long insertDept(AddDeptDto dept,Long comId);

    /**修改部门
     * @param dept*/
    public Long UpdateDept(ModifyDeptDto dept,Long comId);

    /**
     * 是否存在子节点
     *
     * @param deptId 部门ID
     * @return 结果
     */
    public boolean hasChildByDeptId (Long comId,Long deptId);

    /**
     * 查询部门是否存在用户
     *
     * @param deptId 部门ID
     * @return 结果 true 存在 false 不存在
     */
    public boolean checkDeptExistUser (Long comId, Long deptId);

    /**删除部门*/
    public void DelDept(Long comId, Long deptId);

    /**查找部门名称
     * @return*/
    public EntityDeptInfo SelectDeptName(Long deptId, Long comId);

    PageInfo<EntityDeptInfo> selectGetDeptInfos(Long comId, Department department);

    String selectDeptIds(Long comId, Department department);


    List<EntityDeptInfo> getDeptList(Long companyId, Long deptId);

    Boolean saveArr(Long comId, List<EntityDeptInfo> entityDeptInfos);

    List<EntityDeptInfo> getByIds(Long companyId,List<Long> ids);
}
